/*
 * #%L
 * SwiftUICommonUtilities
 * $Id:$
 * $HeadURL:$
 * %%
 * Copyright (C) 2011 - 2012 Linkwithweb
 * %%
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as
 * published by the Free Software Foundation, either version 3 of the 
 * License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public 
 * License along with this program.  If not, see
 * <http://www.gnu.org/licenses/gpl-3.0.html>.
 * #L%
 */
/**
 * 
 */
package com.linkwithweb.products.swiftui.dataobject;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 
 * DROP TABLE IF EXISTS `automata`.`frm_users`;
 * CREATE TABLE `automata`.`frm_users` (
 * `UNIQUE_KEY` int(10) unsigned NOT NULL AUTO_INCREMENT,
 * `USER_ID` varchar(45) NOT NULL,
 * `USER_FIRST_NAME` varchar(45) NOT NULL,
 * `USER_LAST_NAME` varchar(45) NOT NULL,
 * `USER_MIDDLE_NAME` varchar(45) NOT NULL,
 * `USER_PASSWORD` varchar(45) NOT NULL,
 * `USER_BIRTHDATE` datetime NOT NULL,
 * `USER_SEX` varchar(45) NOT NULL,
 * `DEFAULT_DATE_FORMAT` varchar(45) DEFAULT NULL,
 * `DEFAULT_NUMBER_FORMAT` varchar(45) DEFAULT NULL,
 * `USER_EMAIL` varchar(45) NOT NULL,
 * `USER_PHONE` bigint(20) unsigned DEFAULT NULL,
 * `IDENTIFIER` varchar(45) NOT NULL,
 * `IDENTIFIER_ROLE` varchar(45) NOT NULL,
 * `CREATED_BY` int(10) unsigned NOT NULL,
 * `CREATED_DATE` datetime NOT NULL,
 * `MODIFIED_BY` int(10) unsigned NOT NULL,
 * `MODIFIED_DATE` datetime NOT NULL,
 * PRIMARY KEY (`UNIQUE_KEY`)
 * ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
 * 
 * 
 * CREATE TABLE `automata`.`FRM_USER_APP_ASSIGNMENT` (
 * `UNIQUE_KEY` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
 * `USER_ID` VARCHAR(45) NOT NULL,
 * `APP_ID` VARCHAR(45) NOT NULL,
 * `IDENTIFIER` VARCHAR(45) NOT NULL,
 * `IDENTIFIER_ROLE` VARCHAR(45) NOT NULL,
 * `CREATED_BY` INTEGER UNSIGNED NOT NULL,
 * `CREATED_DATE` DATETIME NOT NULL,
 * `MODIFIED_BY` INTEGER UNSIGNED NOT NULL,
 * `MODIFIED_DATE` DATETIME NOT NULL,
 * PRIMARY KEY (`UNIQUE_KEY`)
 * )
 * ENGINE = InnoDB;
 * 
 * @author ashwin kumar
 * 
 */
public class FrameworkUser extends BaseDataObject  implements Serializable {
	private static final long serialVersionUID = 455545642432342L;
	private long uniqueKey = -1;
	private String userId = "";
	private String userFirstName = "";
	private String userLastName = "";
	private String userMiddleName = "";
	private String userPassword = "";
	private Date userBirthDate = null;
	private String userSex = "";
	private String defaultDateFormat = "";
	private String defaultNumberFormat = "";
	private String userEmail = "";
	private int userPhone = -1;
	private Double userLatitude;
	private Double userLongitude;

	private List<FrameworkApplication> listOfApplications = new ArrayList<FrameworkApplication>();
	private List<FrameworkRole> listOfRoles = new ArrayList<FrameworkRole>();

	/**
	 * @return the uniqueKey
	 */
	public long getUniqueKey() {
		return uniqueKey;
	}

	/**
	 * @param uniqueKey
	 *            the uniqueKey to set
	 */
	public void setUniqueKey(long uniqueKey) {
		this.uniqueKey = uniqueKey;
	}

	/**
	 * @return the userId
	 */
	public String getUserId() {
		return userId;
	}

	/**
	 * @param userId
	 *            the userId to set
	 */
	public void setUserId(String userId) {
		this.userId = userId;
	}

	/**
	 * @return the userFirstName
	 */
	public String getUserFirstName() {
		return userFirstName;
	}

	/**
	 * @param userFirstName
	 *            the userFirstName to set
	 */
	public void setUserFirstName(String userFirstName) {
		this.userFirstName = userFirstName;
	}

	/**
	 * @return the userLastName
	 */
	public String getUserLastName() {
		return userLastName;
	}

	/**
	 * @param userLastName
	 *            the userLastName to set
	 */
	public void setUserLastName(String userLastName) {
		this.userLastName = userLastName;
	}

	/**
	 * @return the userMiddleName
	 */
	public String getUserMiddleName() {
		return userMiddleName;
	}

	/**
	 * @param userMiddleName
	 *            the userMiddleName to set
	 */
	public void setUserMiddleName(String userMiddleName) {
		this.userMiddleName = userMiddleName;
	}

	/**
	 * @return the userPassword
	 */
	public String getUserPassword() {
		return userPassword;
	}

	/**
	 * @param userPassword
	 *            the userPassword to set
	 */
	public void setUserPassword(String userPassword) {
		this.userPassword = userPassword;
	}

	/**
	 * @return the userBirthDate
	 */
	public Date getUserBirthDate() {
		return userBirthDate;
	}

	/**
	 * @param userBirthDate
	 *            the userBirthDate to set
	 */
	public void setUserBirthDate(Date userBirthDate) {
		this.userBirthDate = userBirthDate;
	}

	/**
	 * @return the userSex
	 */
	public String getUserSex() {
		return userSex;
	}

	/**
	 * @param userSex
	 *            the userSex to set
	 */
	public void setUserSex(String userSex) {
		this.userSex = userSex;
	}

	/**
	 * @return the defaultDateFormat
	 */
	public String getDefaultDateFormat() {
		return defaultDateFormat;
	}

	/**
	 * @param defaultDateFormat
	 *            the defaultDateFormat to set
	 */
	public void setDefaultDateFormat(String defaultDateFormat) {
		this.defaultDateFormat = defaultDateFormat;
	}

	/**
	 * @return the defaultNumberFormat
	 */
	public String getDefaultNumberFormat() {
		return defaultNumberFormat;
	}

	/**
	 * @param defaultNumberFormat
	 *            the defaultNumberFormat to set
	 */
	public void setDefaultNumberFormat(String defaultNumberFormat) {
		this.defaultNumberFormat = defaultNumberFormat;
	}

	/**
	 * @return the userEmail
	 */
	public String getUserEmail() {
		return userEmail;
	}

	/**
	 * @param userEmail
	 *            the userEmail to set
	 */
	public void setUserEmail(String userEmail) {
		this.userEmail = userEmail;
	}

	/**
	 * @return the userPhone
	 */
	public int getUserPhone() {
		return userPhone;
	}

	/**
	 * @param userPhone
	 *            the userPhone to set
	 */
	public void setUserPhone(int userPhone) {
		this.userPhone = userPhone;
	}

	/**
	 * @return the listOfApplications
	 */
	public List<FrameworkApplication> getListOfApplications() {
		return listOfApplications;
	}

	/**
	 * @param listOfApplications
	 *            the listOfApplications to set
	 */
	public void setListOfApplications(List<FrameworkApplication> listOfApplications) {
		this.listOfApplications = listOfApplications;
	}

	/**
	 * @param application
	 */
	public void addApplication(FrameworkApplication application) {
		this.listOfApplications.add(application);
	}

	/**
	 * @return the listOfRoles
	 */
	public List<FrameworkRole> getListOfRoles() {
		return listOfRoles;
	}

	/**
	 * @param listOfRoles
	 *            the listOfRoles to set
	 */
	public void setListOfRoles(List<FrameworkRole> listOfRoles) {
		this.listOfRoles = listOfRoles;
	}

	/**
	 * @param frameworkRole
	 */
	public void addRole(FrameworkRole frameworkRole){
		this.listOfRoles.add(frameworkRole);
	}

	/**
	 * @return the userLatitude
	 */
	public Double getUserLatitude() {
		return userLatitude;
	}

	/**
	 * @param userLatitude the userLatitude to set
	 */
	public void setUserLatitude(Double userLatitude) {
		this.userLatitude = userLatitude;
	}

	/**
	 * @return the userLongitude
	 */
	public Double getUserLongitude() {
		return userLongitude;
	}

	/**
	 * @param userLongitude the userLongitude to set
	 */
	public void setUserLongitude(Double userLongitude) {
		this.userLongitude = userLongitude;
	}
	
	
}
